// 记录短信验证码
let my_code = ''
// 记录回跳页面的地址
let redirectURL = ''
const app = getApp()
Page({
  data: {
    // 控制倒计时组件的显示(true)/隐藏(false)
    countDownVisible: false,
    timeData: {},
    mobile: '', // 手机号码
    code: '', //验证码
  },
  onLoad(options) {
    redirectURL = options.redirectURL
  },
  // 1. 倒计时
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
  // 2. 获取短信验证码
  async getCode() {
    const { mobile } = this.data
    // 2.1 校验手机号码的格式
    if (!wx.verify.verifyMobile(mobile)) return
    // 2.2 获取短信验证码
    const { code, data } = await wx.http.get('/code', { mobile })
    if (code !== 10000) return wx.utils.toast('获取短信验证码失败')
    // 2.4 记录短信验证码
    my_code = data.code
    // 2.3 开启倒计时
    this.setData({
      countDownVisible: true,
    })
  },
  // 3. 复制验证码到粘贴板
  copyCode() {
    wx.setClipboardData({
      data: my_code,
    })
  },
  // 4. 登录/注册
  async login() {
    const { mobile, code } = this.data
    // 4.1 校验手机号和验证码
    if (!wx.verify.verifyMobile(mobile)) return
    if (!wx.verify.verifyCode(code)) return
    // 4.2 调用登录/注册接口
    const res = await wx.http.post('/login', { mobile, code })
    if (res.code !== 10000) return wx.utils.toast('登录失败~')
    // 4.3 把token和refreshtoken存储到全局和本地
    app.setToken(res.data.token)
    app.setRefreshToken(res.data.refreshToken)
    wx.utils.toast('登录成功~')
    // 4.4 重定向到原本要访问的页面(redirectTo方法不能跳转到tabBar页面)
    if (redirectURL === '/pages/my/index') {
      wx.switchTab({
        url: redirectURL,
      })
    } else {
      wx.redirectTo({
        url: redirectURL,
      })
    }
  },
})
